package com.ks.api.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ks.api.entity.KsEventData;

import java.util.List;
import java.util.Map;

/**
 * 快手事件数据服务接口
 */
public interface KsEventDataService extends IService<KsEventData> {
    
    /**
     * 获取快手eCPM报表数据并保存
     * 
     * @return 成功保存的记录数
     */
    int fetchAndSaveEcpmReportData();
    
    /**
     * 保存快手事件数据
     * 
     * @param eventData 事件数据
     * @return 是否保存成功
     */
    boolean saveEventData(KsEventData eventData);
    
    /**
     * 根据用户昵称查询事件数据
     * 
     * @param nickname 用户昵称
     * @param page 页码
     * @param size 每页大小
     * @return 分页数据
     */
    Map<String, Object> findEventsByNickname(String nickname,String nickId, Integer page, Integer size);

    /**
     * 获取所有事件数据（分页）
     * 
     * @param page 页码
     * @param size 每页大小
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param nickId 用户编号（可选）
     * @param nickname 用户昵称（可选）
     * @return 分页数据
     */
    Map<String, Object> findAllEvents(Integer page, Integer size, String startTime, String endTime, String nickId, String nickname);
    
    /**
     * 更新用户状态
     * 
     * @param nickId 用户编号
     * @param status 状态值（0：禁用，1：正常）
     * @return 更新的记录数
     */
    int updateUserStatus(String nickId, int status);
    
    /**
     * 更新指定用户在指定时间范围内的事件状态
     * 
     * @param nickId 用户编号
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 更新的记录数
     */
    int updateEventStatus(String nickId, String startTime, String endTime);
} 